import { defineConfig } from "vite";
import react from "@vitejs/plugin-react";

// @ts-expect-error process is a nodejs global
const host = process.env.TAURI_DEV_HOST;

// https://vitejs.dev/config/
export default defineConfig(async () => ({
  plugins: [react()],

  // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
  //
  // 1. prevent vite from obscuring rust errors
  clearScreen: false,
  // 2. tauri expects a fixed port, fail if that port is not available
  server: {
    port: 3000,
    strictPort: false,
    host: host || false,
    hmr: host
      ? {
          protocol: "ws",
          host,
          port: 3000,
          overlay: false
        }
      : undefined,
    watch: {
      // 3. tell vite to ignore watching `src-tauri`
      ignored: ["**/src-tauri/**"],
    },
  },
  // 添加有关当前构建目标的额外前缀，使这些 CLI 设置的 Tauri 环境变量可以在客户端代码中访问
  // envPrefix: ['VITE_', 'TAURI_ENV_*'],
  // build: {
  //   // Tauri 在 Windows 上使用 Chromium，在 macOS 和 Linux 上使用 WebKit
  //   target:
  //     process.env.TAURI_ENV_PLATFORM == 'windows'
  //       ? 'chrome105'
  //       : 'safari13',
  //   // 在 debug 构建中不使用 minify
  //   minify: !process.env.TAURI_ENV_DEBUG ? 'esbuild' : false,
  //   // 在 debug 构建中生成 sourcemap
  //   sourcemap: !!process.env.TAURI_ENV_DEBUG,
  // },
}));
